Next: 6 Conclusions
Up: 5 Further Investigation
Previous: 5.1 Sharing and Context
OpenGL is extensible so it is appropriate to consider what extensions
to OpenGL would improve the perceived and actual performance of GLR.
Possibilities include:
- Compressed image formats to compress pixels read from
and uncompress pixels displayed to the frame buffer.
- An extension to add a scan-line skip count (0 by default)
indicating how many scan-lines to skip between every scan-line drawn to
or read from the frame buffer. A scan-line skip count of 1 would
permit even and odd scan-line interleaving. A GLR client could read
back all the odd scan-lines (or every third scan line, etc.) and
immediately display them; afterword, read and display the even
scan-lines. This incremental display might give the GLR application user
faster perceived feedback.
- Using OpenGL's existing copy texture extension, perform
staged read backs by reading back the frame buffer state into a texture
object, end the render interval, call glrEstablishRenderState,
and then (outside the render interval) read the texture object's
contents (possible because texture objects are render state, not frame buffer
state) back to the GLR client. This allows another render interval
to be scheduled while the previous client is still reading back
its frame buffer state.
- The described GLR implementation based on glrmanager
dedicates the high-end graphics subsystem to GLR. This is a serious
disadvantage because a machine set up to work as a GLR render server
will not be available for normal window system sessions.
If GLR render intervals can be
implemented using OpenGL pixel buffers instead of windows so that
render intervals would use off-screen memory for their rendering,
the graphics subsystem might be
able to support both GLR and a window system simultaneously.
Next: 6 Conclusions
Up: 5 Further Investigation
Previous: 5.1 Sharing and Context
Mark Kilgard
Fri Jan 5 18:13:30 PST 1996